Numerical Control (NC) is a method of automatically operating a machine tool based on code letters, discrete numerical values, and special characters. A Computer Numerical Control (CNC) machine tool is an NC machine tool that is controlled by computers. CNC machine tools are used to machine a workpiece to a finished shape by providing a relative motion between the workpiece and the cutting tool. This relative motion could be provided differently for various operations either by holding the workpiece stationary and moving the cutting tool, as in drilling, or by holding the cutting tool stationary and rotating the workpiece, as in turning.
A CNC machine tool is equipped with different axes of motion in order to provide the required relative motion between the cutting tool and the workpiece. Each of these axes has a driving device that might be a dc motor, a hydraulic actuator, or a stepper motor.
FIG. 1 illustrates a multi-axis CNC machine 100. The machine includes a cutting or machining tool 102 that can be moved relative to a workpiece 118 along a plurality of different axes. As depicted in FIG. 1, the machining tool can be moved along three linear and orthogonal axes namely the X axis 104, the Y axis 106 and the Z axis 108. Although depicted as being orthogonal, it is possible that the machine tool can be moved along a plurality of non-orthogonal axes. Additionally the machining tool 102 may rotate about one or more axes. The rotation is depicted as being about the A axis 110, the B axis 112 and the C axis 114. The A, B and C axes are depicted as being parallel with the X, Y and Z axes however, the axes do not need to be parallel. The workpiece 118 is positioned on a machine table 116 in a known location allowing translation of the workpiece coordinates Xw 120, Yw 122, Zw 124 to the machine coordinates to allow machining of the workpiece. Although the movement of the machining tool 102 is depicted as occurring at the tool 102 itself, it is noted that the motion is relative to the workpiece, and as such, motion of the workpiece or tool, or a combination thereof can produce the same results. For example, the tool 102 may rotate about the A, B and C axis and travel along the Z-axis while the table 116 moves the workpiece in the X and Y axis. Multi-axis machines generally allow movement about the X, Y and Z axis and one or more, and typically 2, of the rotary axes A, B, and C. The movement between the tool and the workpiece may be provided by movement of the tool head and/or the workpiece or a platform the workpiece is affixed to.
CAD/CAM software can be used to specify the movement of a tool relative to the workpiece required to produce a part from a workpiece. The CAD/CAM software produces a plurality of tool paths that include cutting paths, which are paths in which the tool is in contact with the workpiece in order to remove material to form the part, and positioning paths, which position the tool to or from cutting paths without contacting objects in the machining scene. The objects of the machining scene may include the workpiece itself, fixtures securing the workpiece as well as portions of the machine or any other objects that the tool may collide with. Typically positioning paths are traversed by rapid motions that use the maximum velocity of the machine axes or a high velocity.
FIG. 2A depicts an initial configuration of a cutting tool relative to a workpiece. FIG. 2B depicts cutting and positioning paths for producing a part from the workpiece. A tool 204 is at an initial position relative to the workpiece 202 as depicted in FIG. 2A. As depicted in FIG. 2B, the tool 204 moves along a positioning path A 206 to a start position 208 of a cutting path. The cutting path B 210 moves the tool to the end location 212 of the cutting path B which causes the removal of material 240. The tool is then repositioned to the start position 230 of the next cutting path by positioning path C 218. The positioning path C comprises 3 movements 220, 224, 228. First, the tool is retracted to a position 222 on or above a clearance plane 216. Next the tool is moved to a position 226 above the start position 230 of the next cutting path. Finally the tool is plunged 228 to the start position 230. The tool is moved along the cutting path D 232 from the start position 230 to the end position 234 and then moved along the positioning path E 236. Positioning path again retracts the tool to the position 238 above the clearance plane 216.
FIG. 3 depicts the process of designing and producing a part on a CNC machine. In order to machine a part from a workpiece, the part is designed in a computer aided design (CAD) application 302 and neutral machining instructions can be developed in a computer aided manufacturing (CAM) application 302. The neutral machining instructions specify movement of the tool or tools as a plurality of cutter locations. The CAM application generates tool paths that specify the movement of a tool relative to the workpiece. The tool paths include cutting paths, in which the tool is moved relative to the workpiece and is in contact with the workpiece, and non-cutting or positioning paths, in which the tool is positioned from one location to another without contacting the workpiece or other components. As depicted the CAD/CAM application 302 may output the tool paths as a cutter location data (CL Data) 304. The CL Data 304 specifies the tool location, and other machining characteristics such as feed rate, positioning speed, cutting speed, etc, in a manner that can be subsequently translated into machine specific instructions. The CL Data 304 comprises one or more cutting paths 306, 310, 314 each of which comprises a start configuration of the tool and an end configuration of the tool. The tool is moved between cutting paths by respective positioning paths 308, 312. Positioning paths may be developed in the CAD/CAM application 302 by providing a user-specified clearance plane that is defined relative to the workpiece coordinates and geometry. A similar approach is for the user to define one or more safety zones. In either case, the CAM application retracts the tool to the safe zone, or to the clearance plane and then moves within the clearance plane or safety zone to approach the next cutting location, and finally moves to the start of the next cutting location. Additionally or alternatively, the CAD/CAM application may allow the user to specify the positioning paths manually by defining movements along different directions. Regardless of how the positioning paths are generated, they can require considerable user interaction to produce safe positioning paths for a particular machine.
In order to machine a part according to the specified CL Data, the CL Data must be transformed into machine-dependent code for the particular machine being used to machine the part. This translation is performed by an NC post-processor 316. The post-processor 316 receives controller settings 318, and a machine selection 320 specifying a particular machine that will be used to machine the part. The post-processor transforms the CL Data 304 into a machine specific NC program 324. The post-processor 316 generates the NC program using information about the kinematics of the selected machine 322, that is information about how the selected machine provides the relative movement between the tool and the workpiece. As depicted the NC program 324 may be executed by a simulation of the CNC machine 326 in order to verify that the positioning paths and cutting paths are valid, that is there are no collisions between objects in the machining scene and machine travel limits are respected. The simulation of the CNC machine 326 may also verify the syntax of the NC program to ensure it uses proper syntax. If the NC program comprises valid positioning paths and cutting paths 330, the NC program can be executed on the CNC machine 332 to produce the part.
The NC program 324 is typically first run on a CNC machine simulator 326 to ensure that the NC program 324 does not cause collisions, or violate machine travel limits. Non-cutting positioning paths generated by CAM applications for multi-axis machining can be unsafe and inefficient. This is mainly because CAM applications ignore the particular machine characteristics of the CNC machine that will be used to produce the part. The machine characteristics may include, for example, machine tool kinematics, axis travel velocities, axis acceleration, travel limitations, positioning methodologies, and workpiece setup in the generation of positioning tool paths. Accordingly, invalid positioning paths or cutting paths 328 must be adjusted in the CAM application using trial and error. Once the user has adjusted the positioning paths, the NC program can be generated and tested again. This process of trial and error must be repeated until successful positioning paths are defined in the CAM application. The trial and error process for generating positioning paths for a particular CNC machine can require considerable user interaction.
The trial and error by a user required to specify safe positioning paths for a specific machine is undesirable. Further, once an NC program is generated with safe positioning paths, it is machine specific and the time consuming trial and error process needs to be carried out again if the part is to be machined on a different machine having different machine kinematics. Further still, the positioning paths developed by the trial and error process may not be the optimal positioning paths resulting in longer machining time.
An alternative to developing positioning paths is desirable. In this regard, it may be beneficial to automatically develop positioning paths without substantial user interaction as an alternative to the current techniques for developing positioning paths.